<?php

namespace app\admin\controller;

use app\admin\model\Admin as AdminModel;
use think\Request;
use think\Session;

class Admin extends Base
{
    /**
     * 加载管理员Admin登陆界面
     *
     * @return \think\Response
     */
    public function login()
    {
        // 防止用户重复登录
        $this->alreadyLogin();

        return view('admin@index/login');
    }

    /**
     * 验证登录
     *
     * @return \think\Response
     */
    public function checkLogin(Request $request)
    {
        // $result = $request->post();
        // 初始化返回参数
        $status = 0;// 验证失败的标志
        $result = '验证失败'; // 失败提示的信息
        $data = $request->param();

        // 验证规则
        $rule = [
            'adminname|登录名' => 'require',
            'password|密码' => 'require',
            'verify|验证码' => 'require|captcha'
        ];

        // 验证数据 $this->validate($data,$rule,$msg)
        $result = $this->validate($data, $rule);

        // 通过验证后进行数据表查询
        // 此处必须全等===才可以,因为验证不通过,$result保持错误信息字符串,返回非零
        if ($result === true) {
            // 查询条件
            $map = [
                'adminname' => $data['adminname'],
                'password' => md5($data['password'])
            ];

            // 数据表查询,返回模型对象
            $admin = AdminModel::get($map);

            if ($admin === null) {
                $result = '没有该用户，请检查！';
            } else {
                $status = 1;
                $result = '验证通过，请点击【确定】后进入后台';

                // 创建2个session,用来检测管理员登陆的状态和防止重复登陆
                Session::set('admin_id', $admin->id);
                Session::set('admin_info', $admin->getData());

                // 更新用户登录次数：自增1
                // $admin->setInc('login_count');
            }
        }
        return [
            'status' => $status,
            'message' => $result,
            'data' => $data
        ];

    }

    /**
     * 退出登录
     *
     * @return \think\Response
     */
    public function logout()
    {
        // 注销Session
        Session::delete('admin_id');
        Session::delete('admin_info');

        $this->success('注销成功，正在返回...', 'login');
    }

    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        // 查询用户列表
        $adminlist = AdminModel::paginate(2);

        // 获取用户的数量
        $count = AdminModel::count();

        // 返回页面
        $this->view->assign('adminlist', $adminlist);
        $this->view->assign('count', $count);

        // 显示用户列表
        return $this->view->fetch();

    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        //
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        //
    }

    /**
     * 显示指定的资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function read($id)
    {
        //
    }

    /**
     * 显示编辑资源表单页.
     *
     * @param  int $id
     * @return \think\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request $request
     * @param  int $id
     * @return \think\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * 删除指定资源
     *
     * @param  int $id
     * @return \think\Response
     */
    public function delete($id)
    {
        //
    }
}
